# Column Configuration
Defines site columns (fields) that can be reused across document libraries and content types.
Referenced by: SiteCfg.Columns, DocLibCfg.Columns, ContentTypeCfg.Columns.
# Overview
ColumnCfg defines a SharePoint field/column with its type, validation rules, display format, and default values. Columns are created at the site level and can be added to multiple libraries and content types.
# Applied when
Site columns are created when:
- The parent
SiteCfgis provisioned and references this column viaColumnsarray - OR a
DocLibCfgreferences this column viaColumnsarray (creates library-scoped column) - OR a
ContentTypeCfgreferences this column viaColumnsarray (adds column to content type) - Applied during site or library provisioning; columns are created before they are assigned to content types or added to libraries
- Retroactive changes to column properties (field type, validation rules) may require manual SharePoint administration or column re-creation
# Core settings
# Name
Type: string | Required: Yes
Unique name used in configuration references to identify this column.
Example: "MatterCode", "ClientName"
# Group
Type: string | Required: No
Field group for UI organization in SharePoint forms and settings.
Example: "Matter Information", "Client Details"
# Title
Type: string | Required: Yes
Display name shown in the UI and column headers.
# Description
Type: string | Required: No
Field description shown in item forms and column settings.
# FieldType
Type: enum | Required: Yes
Data type of the column. Common types: Text, Note, Integer, Number, DateTime, Choice, MultiChoice, Lookup, User, UserMulti, Boolean, Calculated, Taxonomy.
# Required
Type: bool | Required: No | Default: false
Make the field required. Users must provide a value when creating or editing items.
# EnforceUniqueValues
Type: bool | Required: No
Enforce unique values across items in the library or list. Only applies to indexed fields. When enabled, SharePoint prevents duplicate values in this column.
# DefaultValue
Type: string | Required: No
Default value for new items when created. Special behavior for Boolean fields: If this property is empty or null for a Boolean column, it is automatically set to "Yes".
# Indexed
Type: bool | Required: No
Create an index on this column for faster queries and filtering. Enable for columns frequently used in views, filters, or lookups.
# Hidden
Type: bool | Required: No | Default: false
Hide from the UI (useful for system columns that should not be edited directly by users).
# Text and number columns
# TextMaxLength
Type: int | Required: No | C#: TextMaxLength | Configurator: "MaxLength"
Maximum length for text columns. Valid range: 1–255 characters. When set, users cannot enter more than this many characters.
# Note/rich text columns
# UnlimitedLength
Type: bool | Required: No | Configurator: "Unlimited Length"
Allow unlimited text length in document libraries. When enabled, users can enter text of any length. When disabled, SharePoint enforces a limit (typically 255 characters for standard note fields).
# NumberOfLines
Type: int | Required: No | Configurator: "Number of lines"
Number of text input lines displayed in forms. Controls the height of the text input box. Typical values: 3–10 for short notes, 10–20 for rich text.
# Lookup columns
# LookupListName
Type: string | Required: Conditional | Configurator: "ListName"
Name of the source list for lookup values. Required when FieldType = Lookup. The lookup column retrieves values from this list. The list must exist in the same site or a specified site.
Example: "Clients", "MatterTypes"
# LookupFieldName
Type: string | Required: Conditional | Configurator: "FieldName"
Field in the source list to display or link to. Required when FieldType = Lookup. Must match a column name in the list specified by LookupListName. This is the field value shown to users.
Example: "Title", "ClientCode"
# LookupAllowMultipleValues
Type: bool | Required: No | Default: false | Configurator: "AllowMultipleValues"
Allow multiple selections from the lookup list. When enabled, users can select multiple items. When disabled, users can select only one item.
# Calculated columns
# CalculatedFormula
Type: string | Required: Conditional | Configurator: "Formula"
Formula expression for calculated fields. Required when FieldType = Calculated. Uses SharePoint field formula syntax.
Example: =[Field1]+[Field2], =UPPER([Title]), =TODAY()
# CalculatedOutputType
Type: enum | Required: No | Configurator: "Output Type"
Output type of the calculated result. Valid values: Text, Number, Currency, DateTime, Boolean. Determines how the result is displayed and formatted.
# DefaultFormula
Type: string | Required: No
Alternative formula name or expression. Rarely used; CalculatedFormula is the standard approach.
# Taxonomy/managed metadata columns
# TaxonomyTermset
Type: string | Required: Conditional | Configurator: "Termset"
Termset name for managed metadata columns. Required when FieldType = Taxonomy. Must reference an existing term set in the managed metadata service.
Example: "Locations", "Document Classification"
# TaxonomyTermGroup
Type: string | Required: Conditional | Configurator: "Termgroup"
Term group name that contains the termset. Required when FieldType = Taxonomy. Provides the scope for the termset lookup.
# DateTime columns
# DateTimeFriendlyDisplayFormat
Type: enum | Required: No | Configurator: "Friendly Display Format"
Display format for relative date display. Valid values: Unspecified, Relative, Standard.
Unspecified— No special formattingRelative— Displays as relative time (e.g., "2 days ago", "3 weeks from now")Standard— Standard date format
# DateTimeFieldFormatType
Type: enum | Required: No | Configurator: "Display Format"
Format type for the datetime field. Valid values: DateTime (date and time), DateOnly (date only).
Note: This affects how values are displayed and input in forms.
# Related
- Content Type Configuration — add columns to content types
- Site Configuration — add columns to sites
- Document Library Configuration — add columns to libraries